// 引入readline模块（Node.js内置，用于读取用户输入）
const readline = require('readline');

// 创建readline接口（配置输入流和输出流）
const rl = readline.createInterface({
  input: process.stdin,  // 输入流：键盘
  output: process.stdout // 输出流：控制台
});

// 存储用户信息的对象
const userInfo = {};

// 定义需要收集的字段（顺序：姓名→邮箱→QQ→手机号）
const fields = [
  { key: 'name', prompt: '请输入您的姓名：' },
  { key: 'email', prompt: '请输入您的邮箱：' },
  { key: 'qq', prompt: '请输入您的QQ号：' },
  { key: 'phone', prompt: '请输入您的手机号：' }
];

/**
 * 递归获取用户输入（按字段顺序依次询问）
 * @param {number} index - 当前要收集的字段索引
 */
function collectUserInput(index = 0) {
  // 递归终止条件：所有字段已收集完成
  if (index >= fields.length) {
    console.log('\n=== 您输入的完整信息 ===');
    console.log(JSON.stringify(userInfo, null, 2)); // 格式化输出JSON
    rl.close(); // 关闭readline接口（结束程序）
    return;
  }

  // 获取当前字段配置
  const { key, prompt } = fields[index];
  
  // 询问用户并获取输入
  rl.question(prompt, (answer) => {
    // 保存用户输入（去空格处理）
    userInfo[key] = answer.trim();
    // 递归收集下一个字段
    collectUserInput(index + 1);
  });
}

// 启动用户输入收集
console.log('=== 用户信息收集工具 ===');
console.log('请按提示输入以下信息（输入后按回车继续）\n');
collectUserInput();

// 监听readline关闭事件（可选：提示程序结束）
rl.on('close', () => {
  console.log('\n信息收集完成，程序已退出！');
});